home *** CD-ROM | disk | FTP | other *** search
/ Developer CD Series 1998 January: Technology Seed / Jan. '98 ATS.toast / QuickTime™ 3.0b11 / QTPublicInterfaces / CIncludes / QuickTimeVR.h < prev    next >
Encoding:
C/C++ Source or Header  |  1998-01-12  |  31.4 KB  |  1,044 lines  |  [TEXT/MPS ]

  1. /*
  2.      File:        QuickTimeVR.h
  3.  
  4.      Contains:    QuickTime VR interfaces
  5.  
  6.      Version:    Technology:    QuickTime VR 2.1
  7.                  Release:    QuickTime 3.0 Beta
  8.  
  9.      Copyright:    © 1997 by Apple Computer, Inc., all rights reserved.
  10.  
  11.      Bugs?:        Please include the the file and version information (from above) with
  12.                  the problem description.  Developers belonging to one of the Apple
  13.                  developer programs can submit bug reports to:
  14.  
  15.                      devsupport@apple.com
  16.  
  17. */
  18. #ifndef __QUICKTIMEVR__
  19. #define __QUICKTIMEVR__
  20.  
  21. #ifndef __CONDITIONALMACROS__
  22. #include <ConditionalMacros.h>
  23. #endif
  24. #ifndef __DIALOGS__
  25. #include <Dialogs.h>
  26. #endif
  27. #ifndef __MOVIES__
  28. #include <Movies.h>
  29. #endif
  30.  
  31.  
  32.  
  33. #if PRAGMA_ONCE
  34. #pragma once
  35. #endif
  36.  
  37. #ifdef __cplusplus
  38. extern "C" {
  39. #endif
  40.  
  41. #if PRAGMA_IMPORT
  42. #pragma import on
  43. #endif
  44.  
  45. #if PRAGMA_STRUCT_ALIGN
  46.     #pragma options align=mac68k
  47. #elif PRAGMA_STRUCT_PACKPUSH
  48.     #pragma pack(push, 2)
  49. #elif PRAGMA_STRUCT_PACK
  50.     #pragma pack(2)
  51. #endif
  52.  
  53. typedef struct OpaqueQTVRInstance*         QTVRInstance;
  54.  
  55. /* Released API Version numbers */
  56. #define kQTVRAPIMajorVersion02  (0x02)
  57. #define kQTVRAPIMinorVersion00  (0x00)
  58. #define kQTVRAPIMinorVersion01  (0x01)
  59. #define kQTVRAPIMinorVersion10  (0x10)
  60.  
  61. /* Version numbers for the API described in this header */
  62. #define kQTVRAPIMajorVersion kQTVRAPIMajorVersion02
  63. #define kQTVRAPIMinorVersion kQTVRAPIMinorVersion10
  64.  
  65.  
  66.  
  67. enum {
  68.     kQTVRControllerSubType        = FOUR_CHAR_CODE('ctyp'),
  69.     kQTVRQTVRType                = FOUR_CHAR_CODE('qtvr'),
  70.     kQTVRPanoramaType            = FOUR_CHAR_CODE('pano'),
  71.     kQTVRObjectType                = FOUR_CHAR_CODE('obje'),
  72.     kQTVROldPanoType            = FOUR_CHAR_CODE('STpn'),        /* Used in QTVR 1.0 release*/
  73.     kQTVROldObjectType            = FOUR_CHAR_CODE('stna')        /* Used in QTVR 1.0 release*/
  74. };
  75.  
  76. #if TARGET_OS_MAC
  77. #define kQTVRUnknownType '????'        // Unknown node type
  78. #else
  79. #define kQTVRUnknownType '\?\?\?\?'    // Unknown node type
  80. #endif  /* TARGET_OS_MAC */
  81.  
  82. /* QTVR hot spot types*/
  83.  
  84. enum {
  85.     kQTVRHotSpotLinkType        = FOUR_CHAR_CODE('link'),
  86.     kQTVRHotSpotURLType            = FOUR_CHAR_CODE('url '),
  87.     kQTVRHotSpotUndefinedType    = FOUR_CHAR_CODE('undf')
  88. };
  89.  
  90. /* Special Values for nodeID in QTVRGoToNodeID*/
  91.  
  92. enum {
  93.     kQTVRCurrentNode            = 0,
  94.     kQTVRPreviousNode            = (long)0x80000000,
  95.     kQTVRDefaultNode            = (long)0x80000001
  96. };
  97.  
  98. /* Panorama correction modes used for the kQTVRImagingCorrection imaging property*/
  99.  
  100. enum {
  101.     kQTVRNoCorrection            = 0,
  102.     kQTVRPartialCorrection        = 1,
  103.     kQTVRFullCorrection            = 2
  104. };
  105.  
  106. /* Imaging Modes used by QTVRSetImagingProperty, QTVRGetImagingProperty, QTVRUpdate, QTVRBeginUpdate*/
  107.  
  108. enum {
  109.     kQTVRStatic                    = 1,
  110.     kQTVRMotion                    = 2,
  111.     kQTVRCurrentMode            = 0,                            /* Special Value for QTVRUpdate*/
  112.     kQTVRAllModes                = 100                            /* Special value for QTVRSetProperty*/
  113. };
  114.  
  115. typedef UInt32                             QTVRImagingMode;
  116. /* Imaging Properties used by QTVRSetImagingProperty, QTVRGetImagingProperty*/
  117.  
  118. enum {
  119.     kQTVRImagingCorrection        = 1,
  120.     kQTVRImagingQuality            = 2,
  121.     kQTVRImagingDirectDraw        = 3,
  122.     kQTVRImagingCurrentMode        = 100                            /* Get Only*/
  123. };
  124.  
  125. /* OR the above with kImagingDefaultValue to get/set the default value*/
  126.  
  127. enum {
  128.     kImagingDefaultValue        = (long)0x80000000
  129. };
  130.  
  131. /* Transition Types used by QTVRSetTransitionProperty, QTVREnableTransition*/
  132.  
  133. enum {
  134.     kQTVRTransitionSwing        = 1
  135. };
  136.  
  137. /* Transition Properties QTVRSetTransitionProperty*/
  138.  
  139. enum {
  140.     kQTVRTransitionSpeed        = 1,
  141.     kQTVRTransitionDirection    = 2
  142. };
  143.  
  144. /* Constraint values used to construct value returned by GetConstraintStatus*/
  145.  
  146. enum {
  147.     kQTVRUnconstrained            = 0L,
  148.     kQTVRCantPanLeft            = 1L << 0,
  149.     kQTVRCantPanRight            = 1L << 1,
  150.     kQTVRCantPanUp                = 1L << 2,
  151.     kQTVRCantPanDown            = 1L << 3,
  152.     kQTVRCantZoomIn                = 1L << 4,
  153.     kQTVRCantZoomOut            = 1L << 5,
  154.     kQTVRCantTranslateLeft        = 1L << 6,
  155.     kQTVRCantTranslateRight        = 1L << 7,
  156.     kQTVRCantTranslateUp        = 1L << 8,
  157.     kQTVRCantTranslateDown        = 1L << 9
  158. };
  159.  
  160. /* Object only mouse mode values used to construct value returned by QTVRGetCurrentMouseMode*/
  161.  
  162. enum {
  163.     kQTVRPanning                = 1L << 0,                        /* standard objects, "object only" controllers*/
  164.     kQTVRTranslating            = 1L << 1,                        /* all objects*/
  165.     kQTVRZooming                = 1L << 2,                        /* all objects*/
  166.     kQTVRScrolling                = 1L << 3,                        /* standard object arrow scrollers and joystick object*/
  167.     kQTVRSelecting                = 1L << 4                        /* object absolute controller*/
  168. };
  169.  
  170. /* Properties for use with QTVRSetInteractionProperty/GetInteractionProperty*/
  171.  
  172. enum {
  173.     kQTVRInteractionMouseClickHysteresis = 1,                    /* pixels within which the mouse is considered not to have moved (UInt16)*/
  174.     kQTVRInteractionMouseClickTimeout = 2,                        /* ticks after which a mouse click times out and turns into panning (UInt32)*/
  175.     kQTVRInteractionPanTiltSpeed = 3,                            /* control the relative pan/tilt speed from 1 (slowest) to 10 (fastest). (UInt32) Default is 5;*/
  176.     kQTVRInteractionZoomSpeed    = 4,                            /* control the relative zooming speed from 1 (slowest) to 10 (fastest). (UInt32) Default is 5;*/
  177.     kQTVRInteractionTranslateOnMouseDown = 101,                    /* Holding MouseDown with this setting translates zoomed object movies (Boolean)*/
  178.     kQTVRInteractionMouseMotionScale = 102,                        /* The maximum angle of rotation caused by dragging across the display window. (* float)*/
  179.     kQTVRInteractionNudgeMode    = 103                            /* A QTVRNudgeMode: rotate, translate, or the same as the current mouse mode.*/
  180. };
  181.  
  182. /* OR the above with kQTVRInteractionDefaultValue to get/set the default value*/
  183.  
  184. enum {
  185.     kQTVRInteractionDefaultValue = (long)0x80000000
  186. };
  187.  
  188.  
  189. /* Geometry constants used in QTVRSetBackBufferPrefs, QTVRGetBackBufferSettings, QTVRGetBackBufferMemInfo*/
  190.  
  191. enum {
  192.     kQTVRUseMovieGeometry        = 0,
  193.     kQTVRVerticalCylinder        = FOUR_CHAR_CODE('vcyl')
  194. };
  195.  
  196. /* Resolution constants used in QTVRSetBackBufferPrefs, QTVRGetBackBufferSettings, QTVRGetBackBufferMemInfo*/
  197.  
  198. enum {
  199.     kQTVRDefaultRes                = 0,
  200.     kQTVRFullRes                = 1L << 0,
  201.     kQTVRHalfRes                = 1L << 1,
  202.     kQTVRQuarterRes                = 1L << 2
  203. };
  204.  
  205. /* QTVR-specific pixelFormat constants used in QTVRSetBackBufferPrefs, QTVRGetBackBufferSettings, QTVRGetBackBufferMemInfo*/
  206.  
  207. enum {
  208.     kQTVRUseMovieDepth            = 0
  209. };
  210.  
  211. /* Cache Size Pref constants used in QTVRSetBackBufferPrefs, QTVRGetBackBufferSettings*/
  212.  
  213. enum {
  214.     kQTVRMinimumCache            = -1,
  215.     kQTVRSuggestedCache            = 0,
  216.     kQTVRFullCache                = 1
  217. };
  218.  
  219. /* Angular units used by QTVRSetAngularUnits*/
  220.  
  221. enum {
  222.     kQTVRDegrees                = 0,
  223.     kQTVRRadians                = 1
  224. };
  225.  
  226. typedef UInt32                             QTVRAngularUnits;
  227. /* Values for enableFlag parameter in QTVREnableHotSpot*/
  228.  
  229. enum {
  230.     kQTVRHotSpotID                = 0,
  231.     kQTVRHotSpotType            = 1,
  232.     kQTVRAllHotSpots            = 2
  233. };
  234.  
  235. /* Values for kind parameter in QTVRGet/SetConstraints, QTVRGetViewingLimits*/
  236.  
  237. enum {
  238.     kQTVRPan                    = 0,
  239.     kQTVRTilt                    = 1,
  240.     kQTVRFieldOfView            = 2,
  241.     kQTVRViewCenterH            = 4,                            /* WrapAndConstrain only*/
  242.     kQTVRViewCenterV            = 5                                /* WrapAndConstrain only*/
  243. };
  244.  
  245. /* Values for setting parameter in QTVRSetAnimationSetting, QTVRGetAnimationSetting*/
  246.  
  247. enum {
  248.     kQTVRPalindromeViewFrames    = 1,                            /* View Frame Animation Settings*/
  249.     kQTVRStartFirstViewFrame    = 2,
  250.     kQTVRDontLoopViewFrames        = 3,
  251.     kQTVRPlayEveryViewFrame        = 4,
  252.     kQTVRSyncViewToFrameRate    = 16,                            /* View Animation Settings*/
  253.     kQTVRPalindromeViews        = 17,
  254.     kQTVRPlayStreamingViews        = 18
  255. };
  256.  
  257. typedef UInt32                             QTVRObjectAnimationSetting;
  258.  
  259. enum {
  260.     kQTVRWrapPan                = 1,
  261.     kQTVRWrapTilt                = 2,
  262.     kQTVRCanZoom                = 3,
  263.     kQTVRReverseHControl        = 4,
  264.     kQTVRReverseVControl        = 5,
  265.     kQTVRSwapHVControl            = 6,
  266.     kQTVRTranslation            = 7
  267. };
  268.  
  269. typedef UInt32                             QTVRControlSetting;
  270.  
  271. enum {
  272.     kQTVRDefault                = 0,
  273.     kQTVRCurrent                = 2,
  274.     kQTVRMouseDown                = 3
  275. };
  276.  
  277. typedef UInt32                             QTVRViewStateType;
  278.  
  279. enum {
  280.     kQTVRRight                    = 0,
  281.     kQTVRUpRight                = 45,
  282.     kQTVRUp                        = 90,
  283.     kQTVRUpLeft                    = 135,
  284.     kQTVRLeft                    = 180,
  285.     kQTVRDownLeft                = 225,
  286.     kQTVRDown                    = 270,
  287.     kQTVRDownRight                = 315
  288. };
  289.  
  290. typedef UInt32                             QTVRNudgeControl;
  291.  
  292. enum {
  293.     kQTVRNudgeRotate            = 0,
  294.     kQTVRNudgeTranslate            = 1,
  295.     kQTVRNudgeSameAsMouse        = 2
  296. };
  297.  
  298. typedef UInt32                             QTVRNudgeMode;
  299. /* Flags to control elements of the QTVR control bar (set via mcActionSetFlags) */
  300.  
  301. enum {
  302.     mcFlagQTVRSuppressBackBtn    = 1L << 16,
  303.     mcFlagQTVRSuppressZoomBtns    = 1L << 17,
  304.     mcFlagQTVRSuppressHotSpotBtn = 1L << 18,
  305.     mcFlagQTVRSuppressTranslateBtn = 1L << 19,
  306.     mcFlagQTVRSuppressHelpText    = 1L << 20,
  307.     mcFlagQTVRSuppressHotSpotNames = 1L << 21,
  308.     mcFlagQTVRExplicitFlagSet    = 1L << 31                        /* bits 0->30 should be interpreted as "explicit on" for the corresponding suppression bits*/
  309. };
  310.  
  311. /* Cursor types used in type field of QTVRCursorRecord*/
  312.  
  313. enum {
  314.     kQTVRUseDefaultCursor        = 0,
  315.     kQTVRStdCursorType            = 1,
  316.     kQTVRColorCursorType        = 2
  317. };
  318.  
  319. /* Values for flags parameter in QTVRMouseOverHotSpot callback*/
  320.  
  321. enum {
  322.     kQTVRHotSpotEnter            = 0,
  323.     kQTVRHotSpotWithin            = 1,
  324.     kQTVRHotSpotLeave            = 2
  325. };
  326.  
  327. /* Values for flags parameter in QTVRSetPrescreenImagingCompleteProc*/
  328.  
  329. enum {
  330.     kQTVRPreScreenEveryIdle        = 1L << 0
  331. };
  332.  
  333. /* Values for flags field of areasOfInterest in QTVRSetBackBufferImagingProc*/
  334.  
  335. enum {
  336.     kQTVRBackBufferEveryUpdate    = 1L << 0,
  337.     kQTVRBackBufferEveryIdle    = 1L << 1,
  338.     kQTVRBackBufferAlwaysRefresh = 1L << 2
  339. };
  340.  
  341. /* Values for flagsIn parameter in QTVRBackBufferImaging callback*/
  342.  
  343. enum {
  344.     kQTVRBackBufferRectVisible    = 1L << 0,
  345.     kQTVRBackBufferWasRefreshed    = 1L << 1
  346. };
  347.  
  348. /* Values for flagsOut parameter in QTVRBackBufferImaging callback*/
  349.  
  350. enum {
  351.     kQTVRBackBufferFlagDidDraw    = 1L << 0,
  352.     kQTVRBackBufferFlagLastFlag    = 1L << 31
  353. };
  354.  
  355. /* QTVRCursorRecord used in QTVRReplaceCursor*/
  356.  
  357. struct QTVRCursorRecord {
  358.     UInt16                             theType;                    /* field was previously named "type"*/
  359.     SInt16                             rsrcID;
  360.     Handle                             handle;
  361. };
  362. typedef struct QTVRCursorRecord            QTVRCursorRecord;
  363.  
  364. struct QTVRFloatPoint {
  365.     float                             x;
  366.     float                             y;
  367. };
  368. typedef struct QTVRFloatPoint            QTVRFloatPoint;
  369. /* Struct used for areasOfInterest parameter in QTVRSetBackBufferImagingProc*/
  370.  
  371. struct QTVRAreaOfInterest {
  372.     float                             panAngle;
  373.     float                             tiltAngle;
  374.     float                             width;
  375.     float                             height;
  376.     UInt32                             flags;
  377. };
  378. typedef struct QTVRAreaOfInterest        QTVRAreaOfInterest;
  379. /*
  380.   =================================================================================================
  381.    Callback routines 
  382.   -------------------------------------------------------------------------------------------------
  383. */
  384.  
  385. typedef CALLBACK_API( OSErr , QTVRLeavingNodeProcPtr )(QTVRInstance qtvr, UInt32 fromNodeID, UInt32 toNodeID, Boolean *cancel, SInt32 refCon);
  386. typedef CALLBACK_API( OSErr , QTVREnteringNodeProcPtr )(QTVRInstance qtvr, UInt32 nodeID, SInt32 refCon);
  387. typedef CALLBACK_API( OSErr , QTVRMouseOverHotSpotProcPtr )(QTVRInstance qtvr, UInt32 hotSpotID, UInt32 flags, SInt32 refCon);
  388. typedef CALLBACK_API( OSErr , QTVRImagingCompleteProcPtr )(QTVRInstance qtvr, SInt32 refCon);
  389. typedef CALLBACK_API( OSErr , QTVRBackBufferImagingProcPtr )(QTVRInstance qtvr, Rect *drawRect, UInt16 areaIndex, UInt32 flagsIn, UInt32 *flagsOut, SInt32 refCon);
  390. typedef STACK_UPP_TYPE(QTVRLeavingNodeProcPtr)                     QTVRLeavingNodeUPP;
  391. typedef STACK_UPP_TYPE(QTVREnteringNodeProcPtr)                 QTVREnteringNodeUPP;
  392. typedef STACK_UPP_TYPE(QTVRMouseOverHotSpotProcPtr)             QTVRMouseOverHotSpotUPP;
  393. typedef STACK_UPP_TYPE(QTVRImagingCompleteProcPtr)                 QTVRImagingCompleteUPP;
  394. typedef STACK_UPP_TYPE(QTVRBackBufferImagingProcPtr)             QTVRBackBufferImagingUPP;
  395. enum { uppQTVRLeavingNodeProcInfo = 0x0000FFE0 };                 /* pascal 2_bytes Func(4_bytes, 4_bytes, 4_bytes, 4_bytes, 4_bytes) */
  396. enum { uppQTVREnteringNodeProcInfo = 0x00000FE0 };                 /* pascal 2_bytes Func(4_bytes, 4_bytes, 4_bytes) */
  397. enum { uppQTVRMouseOverHotSpotProcInfo = 0x00003FE0 };             /* pascal 2_bytes Func(4_bytes, 4_bytes, 4_bytes, 4_bytes) */
  398. enum { uppQTVRImagingCompleteProcInfo = 0x000003E0 };             /* pascal 2_bytes Func(4_bytes, 4_bytes) */
  399. enum { uppQTVRBackBufferImagingProcInfo = 0x0003FBE0 };         /* pascal 2_bytes Func(4_bytes, 4_bytes, 2_bytes, 4_bytes, 4_bytes, 4_bytes) */
  400. #define NewQTVRLeavingNodeProc(userRoutine)                     (QTVRLeavingNodeUPP)NewRoutineDescriptor((ProcPtr)(userRoutine), uppQTVRLeavingNodeProcInfo, GetCurrentArchitecture())
  401. #define NewQTVREnteringNodeProc(userRoutine)                     (QTVREnteringNodeUPP)NewRoutineDescriptor((ProcPtr)(userRoutine), uppQTVREnteringNodeProcInfo, GetCurrentArchitecture())
  402. #define NewQTVRMouseOverHotSpotProc(userRoutine)                 (QTVRMouseOverHotSpotUPP)NewRoutineDescriptor((ProcPtr)(userRoutine), uppQTVRMouseOverHotSpotProcInfo, GetCurrentArchitecture())
  403. #define NewQTVRImagingCompleteProc(userRoutine)                 (QTVRImagingCompleteUPP)NewRoutineDescriptor((ProcPtr)(userRoutine), uppQTVRImagingCompleteProcInfo, GetCurrentArchitecture())
  404. #define NewQTVRBackBufferImagingProc(userRoutine)                 (QTVRBackBufferImagingUPP)NewRoutineDescriptor((ProcPtr)(userRoutine), uppQTVRBackBufferImagingProcInfo, GetCurrentArchitecture())
  405. #define CallQTVRLeavingNodeProc(userRoutine, qtvr, fromNodeID, toNodeID, cancel, refCon)  CALL_FIVE_PARAMETER_UPP((userRoutine), uppQTVRLeavingNodeProcInfo, (qtvr), (fromNodeID), (toNodeID), (cancel), (refCon))
  406. #define CallQTVREnteringNodeProc(userRoutine, qtvr, nodeID, refCon)  CALL_THREE_PARAMETER_UPP((userRoutine), uppQTVREnteringNodeProcInfo, (qtvr), (nodeID), (refCon))
  407. #define CallQTVRMouseOverHotSpotProc(userRoutine, qtvr, hotSpotID, flags, refCon)  CALL_FOUR_PARAMETER_UPP((userRoutine), uppQTVRMouseOverHotSpotProcInfo, (qtvr), (hotSpotID), (flags), (refCon))
  408. #define CallQTVRImagingCompleteProc(userRoutine, qtvr, refCon)     CALL_TWO_PARAMETER_UPP((userRoutine), uppQTVRImagingCompleteProcInfo, (qtvr), (refCon))
  409. #define CallQTVRBackBufferImagingProc(userRoutine, qtvr, drawRect, areaIndex, flagsIn, flagsOut, refCon)  CALL_SIX_PARAMETER_UPP((userRoutine), uppQTVRBackBufferImagingProcInfo, (qtvr), (drawRect), (areaIndex), (flagsIn), (flagsOut), (refCon))
  410. /*
  411.   =================================================================================================
  412.     QTVR Intercept Struct, Callback, Routine Descriptors 
  413.   -------------------------------------------------------------------------------------------------
  414. */
  415.  
  416.  
  417. enum {
  418.     kQTVRSetPanAngleSelector    = 0x2000,
  419.     kQTVRSetTiltAngleSelector    = 0x2001,
  420.     kQTVRSetFieldOfViewSelector    = 0x2002,
  421.     kQTVRSetViewCenterSelector    = 0x2003,
  422.     kQTVRMouseEnterSelector        = 0x2004,
  423.     kQTVRMouseWithinSelector    = 0x2005,
  424.     kQTVRMouseLeaveSelector        = 0x2006,
  425.     kQTVRMouseDownSelector        = 0x2007,
  426.     kQTVRMouseStillDownSelector    = 0x2008,
  427.     kQTVRMouseUpSelector        = 0x2009,
  428.     kQTVRTriggerHotSpotSelector    = 0x200A,
  429.     kQTVRGetHotSpotTypeSelector    = 0x200B
  430. };
  431.  
  432.  
  433. typedef UInt32                             QTVRProcSelector;
  434.  
  435. struct QTVRInterceptRecord {
  436.     SInt32                             reserved1;
  437.     SInt32                             selector;
  438.  
  439.     SInt32                             reserved2;
  440.     SInt32                             reserved3;
  441.  
  442.     SInt32                             paramCount;
  443.     void *                            parameter[6];
  444. };
  445. typedef struct QTVRInterceptRecord        QTVRInterceptRecord;
  446.  
  447. typedef QTVRInterceptRecord *            QTVRInterceptPtr;
  448. /* Prototype for Intercept Proc callback*/
  449. typedef CALLBACK_API( void , QTVRInterceptProcPtr )(QTVRInstance qtvr, QTVRInterceptPtr qtvrMsg, SInt32 refCon, Boolean *cancel);
  450. typedef STACK_UPP_TYPE(QTVRInterceptProcPtr)                     QTVRInterceptUPP;
  451. enum { uppQTVRInterceptProcInfo = 0x00003FC0 };                 /* pascal no_return_value Func(4_bytes, 4_bytes, 4_bytes, 4_bytes) */
  452. #define NewQTVRInterceptProc(userRoutine)                         (QTVRInterceptUPP)NewRoutineDescriptor((ProcPtr)(userRoutine), uppQTVRInterceptProcInfo, GetCurrentArchitecture())
  453. #define CallQTVRInterceptProc(userRoutine, qtvr, qtvrMsg, refCon, cancel)  CALL_FOUR_PARAMETER_UPP((userRoutine), uppQTVRInterceptProcInfo, (qtvr), (qtvrMsg), (refCon), (cancel))
  454. /*
  455.   =================================================================================================
  456.     Initialization QTVR calls 
  457.   -------------------------------------------------------------------------------------------------
  458. */
  459. #if !TARGET_OS_MAC
  460. EXTERN_API_C( OSErr )
  461. InitializeQTVR                    (void);
  462.  
  463. EXTERN_API_C( OSErr )
  464. TerminateQTVR                    (void);
  465.  
  466. #endif  /*  !TARGET_OS_MAC */
  467.  
  468. /*
  469.   =================================================================================================
  470.     General QTVR calls 
  471.   -------------------------------------------------------------------------------------------------
  472. */
  473. EXTERN_API_C( Track )
  474. QTVRGetQTVRTrack                (Movie                     theMovie,
  475.                                  SInt32                 index);
  476.  
  477. EXTERN_API_C( OSErr )
  478. QTVRGetQTVRInstance                (QTVRInstance *            qtvr,
  479.                                  Track                     qtvrTrack,
  480.                                  MovieController         mc);
  481.  
  482. /*
  483.   =================================================================================================
  484.     Viewing Angles and Zooming 
  485.   -------------------------------------------------------------------------------------------------
  486. */
  487.  
  488. EXTERN_API_C( OSErr )
  489. QTVRSetPanAngle                    (QTVRInstance             qtvr,
  490.                                  float                     panAngle);
  491.  
  492. EXTERN_API_C( float )
  493. QTVRGetPanAngle                    (QTVRInstance             qtvr);
  494.  
  495. EXTERN_API_C( OSErr )
  496. QTVRSetTiltAngle                (QTVRInstance             qtvr,
  497.                                  float                     tiltAngle);
  498.  
  499. EXTERN_API_C( float )
  500. QTVRGetTiltAngle                (QTVRInstance             qtvr);
  501.  
  502. EXTERN_API_C( OSErr )
  503. QTVRSetFieldOfView                (QTVRInstance             qtvr,
  504.                                  float                     fieldOfView);
  505.  
  506. EXTERN_API_C( float )
  507. QTVRGetFieldOfView                (QTVRInstance             qtvr);
  508.  
  509. EXTERN_API_C( OSErr )
  510. QTVRShowDefaultView                (QTVRInstance             qtvr);
  511.  
  512. /* Object Specific*/
  513. EXTERN_API_C( OSErr )
  514. QTVRSetViewCenter                (QTVRInstance             qtvr,
  515.                                  const QTVRFloatPoint *    viewCenter);
  516.  
  517. EXTERN_API_C( OSErr )
  518. QTVRGetViewCenter                (QTVRInstance             qtvr,
  519.                                  QTVRFloatPoint *        viewCenter);
  520.  
  521. EXTERN_API_C( OSErr )
  522. QTVRNudge                        (QTVRInstance             qtvr,
  523.                                  QTVRNudgeControl         direction);
  524.  
  525. EXTERN_API_C( OSErr )
  526. QTVRInteractionNudge            (QTVRInstance             qtvr,
  527.                                  QTVRNudgeControl         direction);
  528.  
  529. /*
  530.   =================================================================================================
  531.     Scene and Node Location Information 
  532.   -------------------------------------------------------------------------------------------------
  533. */
  534.  
  535. EXTERN_API_C( OSErr )
  536. QTVRGetVRWorld                    (QTVRInstance             qtvr,
  537.                                  QTAtomContainer *        VRWorld);
  538.  
  539. EXTERN_API_C( OSErr )
  540. QTVRGoToNodeID                    (QTVRInstance             qtvr,
  541.                                  UInt32                 nodeID);
  542.  
  543. EXTERN_API_C( UInt32 )
  544. QTVRGetCurrentNodeID            (QTVRInstance             qtvr);
  545.  
  546. EXTERN_API_C( OSType )
  547. QTVRGetNodeType                    (QTVRInstance             qtvr,
  548.                                  UInt32                 nodeID);
  549.  
  550. /*
  551.   =================================================================================================
  552.     Hot Spot related calls 
  553.   -------------------------------------------------------------------------------------------------
  554. */
  555.  
  556. EXTERN_API_C( OSErr )
  557. QTVRPtToHotSpotID                (QTVRInstance             qtvr,
  558.                                  Point                     pt,
  559.                                  UInt32 *                hotSpotID);
  560.  
  561. EXTERN_API_C( OSErr )
  562. QTVRGetHotSpotType                (QTVRInstance             qtvr,
  563.                                  UInt32                 hotSpotID,
  564.                                  OSType *                hotSpotType);
  565.  
  566. EXTERN_API_C( OSErr )
  567. QTVRGetNodeInfo                    (QTVRInstance             qtvr,
  568.                                  UInt32                 nodeID,
  569.                                  QTAtomContainer *        nodeInfo);
  570.  
  571. EXTERN_API_C( OSErr )
  572. QTVRTriggerHotSpot                (QTVRInstance             qtvr,
  573.                                  UInt32                 hotSpotID,
  574.                                  QTAtomContainer         nodeInfo,
  575.                                  QTAtom                 selectedAtom);
  576.  
  577. EXTERN_API_C( OSErr )
  578. QTVRSetMouseOverHotSpotProc        (QTVRInstance             qtvr,
  579.                                  QTVRMouseOverHotSpotUPP  mouseOverHotSpotProc,
  580.                                  SInt32                 refCon,
  581.                                  UInt32                 flags);
  582.  
  583. EXTERN_API_C( OSErr )
  584. QTVREnableHotSpot                (QTVRInstance             qtvr,
  585.                                  UInt32                 enableFlag,
  586.                                  UInt32                 hotSpotValue,
  587.                                  Boolean                 enable);
  588.  
  589. EXTERN_API_C( UInt32 )
  590. QTVRGetVisibleHotSpots            (QTVRInstance             qtvr,
  591.                                  Handle                 hotSpots);
  592.  
  593. EXTERN_API_C( OSErr )
  594. QTVRGetHotSpotRegion            (QTVRInstance             qtvr,
  595.                                  UInt32                 hotSpotID,
  596.                                  RgnHandle                 hotSpotRegion);
  597.  
  598. /*
  599.   =================================================================================================
  600.     Event & Cursor Handling Calls 
  601.   -------------------------------------------------------------------------------------------------
  602. */
  603.  
  604. EXTERN_API_C( OSErr )
  605. QTVRSetMouseOverTracking        (QTVRInstance             qtvr,
  606.                                  Boolean                 enable);
  607.  
  608. EXTERN_API_C( Boolean )
  609. QTVRGetMouseOverTracking        (QTVRInstance             qtvr);
  610.  
  611. EXTERN_API_C( OSErr )
  612. QTVRSetMouseDownTracking        (QTVRInstance             qtvr,
  613.                                  Boolean                 enable);
  614.  
  615. EXTERN_API_C( Boolean )
  616. QTVRGetMouseDownTracking        (QTVRInstance             qtvr);
  617.  
  618. EXTERN_API_C( OSErr )
  619. QTVRMouseEnter                    (QTVRInstance             qtvr,
  620.                                  Point                     pt,
  621.                                  UInt32 *                hotSpotID,
  622.                                  WindowPtr                 w);
  623.  
  624. EXTERN_API_C( OSErr )
  625. QTVRMouseWithin                    (QTVRInstance             qtvr,
  626.                                  Point                     pt,
  627.                                  UInt32 *                hotSpotID,
  628.                                  WindowPtr                 w);
  629.  
  630. EXTERN_API_C( OSErr )
  631. QTVRMouseLeave                    (QTVRInstance             qtvr,
  632.                                  Point                     pt,
  633.                                  WindowPtr                 w);
  634.  
  635. EXTERN_API_C( OSErr )
  636. QTVRMouseDown                    (QTVRInstance             qtvr,
  637.                                  Point                     pt,
  638.                                  UInt32                 when,
  639.                                  UInt16                 modifiers,
  640.                                  UInt32 *                hotSpotID,
  641.                                  WindowPtr                 w);
  642.  
  643. EXTERN_API_C( OSErr )
  644. QTVRMouseStillDown                (QTVRInstance             qtvr,
  645.                                  Point                     pt,
  646.                                  UInt32 *                hotSpotID,
  647.                                  WindowPtr                 w);
  648.  
  649. EXTERN_API_C( OSErr )
  650. QTVRMouseUp                        (QTVRInstance             qtvr,
  651.                                  Point                     pt,
  652.                                  UInt32 *                hotSpotID,
  653.                                  WindowPtr                 w);
  654.  
  655. /* These require kQTVRAPIMajorVersion02 and kQTVRAPIMinorVersion01*/
  656. EXTERN_API_C( OSErr )
  657. QTVRMouseStillDownExtended        (QTVRInstance             qtvr,
  658.                                  Point                     pt,
  659.                                  UInt32 *                hotSpotID,
  660.                                  WindowPtr                 w,
  661.                                  UInt32                 when,
  662.                                  UInt16                 modifiers);
  663.  
  664. EXTERN_API_C( OSErr )
  665. QTVRMouseUpExtended                (QTVRInstance             qtvr,
  666.                                  Point                     pt,
  667.                                  UInt32 *                hotSpotID,
  668.                                  WindowPtr                 w,
  669.                                  UInt32                 when,
  670.                                  UInt16                 modifiers);
  671.  
  672. /*
  673.   =================================================================================================
  674.     Intercept Routines 
  675.   -------------------------------------------------------------------------------------------------
  676. */
  677.  
  678. EXTERN_API_C( OSErr )
  679. QTVRInstallInterceptProc        (QTVRInstance             qtvr,
  680.                                  QTVRProcSelector         selector,
  681.                                  QTVRInterceptUPP         interceptProc,
  682.                                  SInt32                 refCon,
  683.                                  UInt32                 flags);
  684.  
  685. EXTERN_API_C( OSErr )
  686. QTVRCallInterceptedProc            (QTVRInstance             qtvr,
  687.                                  QTVRInterceptRecord *    qtvrMsg);
  688.  
  689. /*
  690.   =================================================================================================
  691.     Object Movie Specific Calls 
  692.   -------------------------------------------------------------------------------------------------
  693. */
  694.  
  695. EXTERN_API_C( UInt32 )
  696. QTVRGetCurrentMouseMode            (QTVRInstance             qtvr);
  697.  
  698. EXTERN_API_C( OSErr )
  699. QTVRSetFrameRate                (QTVRInstance             qtvr,
  700.                                  float                     rate);
  701.  
  702. EXTERN_API_C( float )
  703. QTVRGetFrameRate                (QTVRInstance             qtvr);
  704.  
  705. EXTERN_API_C( OSErr )
  706. QTVRSetViewRate                    (QTVRInstance             qtvr,
  707.                                  float                     rate);
  708.  
  709. EXTERN_API_C( float )
  710. QTVRGetViewRate                    (QTVRInstance             qtvr);
  711.  
  712. EXTERN_API_C( OSErr )
  713. QTVRSetViewCurrentTime            (QTVRInstance             qtvr,
  714.                                  TimeValue                 time);
  715.  
  716. EXTERN_API_C( TimeValue )
  717. QTVRGetViewCurrentTime            (QTVRInstance             qtvr);
  718.  
  719. EXTERN_API_C( TimeValue )
  720. QTVRGetCurrentViewDuration        (QTVRInstance             qtvr);
  721.  
  722. /*
  723.   =================================================================================================
  724.    View State Calls - QTVR Object Only
  725.   -------------------------------------------------------------------------------------------------
  726. */
  727.  
  728. EXTERN_API_C( OSErr )
  729. QTVRSetViewState                (QTVRInstance             qtvr,
  730.                                  QTVRViewStateType         viewStateType,
  731.                                  UInt16                 state);
  732.  
  733. EXTERN_API_C( OSErr )
  734. QTVRGetViewState                (QTVRInstance             qtvr,
  735.                                  QTVRViewStateType         viewStateType,
  736.                                  UInt16 *                state);
  737.  
  738. EXTERN_API_C( UInt16 )
  739. QTVRGetViewStateCount            (QTVRInstance             qtvr);
  740.  
  741. EXTERN_API_C( OSErr )
  742. QTVRSetAnimationSetting            (QTVRInstance             qtvr,
  743.                                  QTVRObjectAnimationSetting  setting,
  744.                                  Boolean                 enable);
  745.  
  746. EXTERN_API_C( OSErr )
  747. QTVRGetAnimationSetting            (QTVRInstance             qtvr,
  748.                                  QTVRObjectAnimationSetting  setting,
  749.                                  Boolean *                enable);
  750.  
  751. EXTERN_API_C( OSErr )
  752. QTVRSetControlSetting            (QTVRInstance             qtvr,
  753.                                  QTVRControlSetting     setting,
  754.                                  Boolean                 enable);
  755.  
  756. EXTERN_API_C( OSErr )
  757. QTVRGetControlSetting            (QTVRInstance             qtvr,
  758.                                  QTVRControlSetting     setting,
  759.                                  Boolean *                enable);
  760.  
  761. EXTERN_API_C( OSErr )
  762. QTVREnableFrameAnimation        (QTVRInstance             qtvr,
  763.                                  Boolean                 enable);
  764.  
  765. EXTERN_API_C( Boolean )
  766. QTVRGetFrameAnimation            (QTVRInstance             qtvr);
  767.  
  768. EXTERN_API_C( OSErr )
  769. QTVREnableViewAnimation            (QTVRInstance             qtvr,
  770.                                  Boolean                 enable);
  771.  
  772. EXTERN_API_C( Boolean )
  773. QTVRGetViewAnimation            (QTVRInstance             qtvr);
  774.  
  775.  
  776. /*
  777.   =================================================================================================
  778.     Imaging Characteristics 
  779.   -------------------------------------------------------------------------------------------------
  780. */
  781.  
  782. EXTERN_API_C( OSErr )
  783. QTVRSetVisible                    (QTVRInstance             qtvr,
  784.                                  Boolean                 visible);
  785.  
  786. EXTERN_API_C( Boolean )
  787. QTVRGetVisible                    (QTVRInstance             qtvr);
  788.  
  789. EXTERN_API_C( OSErr )
  790. QTVRSetImagingProperty            (QTVRInstance             qtvr,
  791.                                  QTVRImagingMode         imagingMode,
  792.                                  UInt32                 imagingProperty,
  793.                                  SInt32                 propertyValue);
  794.  
  795. EXTERN_API_C( OSErr )
  796. QTVRGetImagingProperty            (QTVRInstance             qtvr,
  797.                                  QTVRImagingMode         imagingMode,
  798.                                  UInt32                 imagingProperty,
  799.                                  SInt32 *                propertyValue);
  800.  
  801. EXTERN_API_C( OSErr )
  802. QTVRUpdate                        (QTVRInstance             qtvr,
  803.                                  QTVRImagingMode         imagingMode);
  804.  
  805. EXTERN_API_C( OSErr )
  806. QTVRBeginUpdateStream            (QTVRInstance             qtvr,
  807.                                  QTVRImagingMode         imagingMode);
  808.  
  809. EXTERN_API_C( OSErr )
  810. QTVREndUpdateStream                (QTVRInstance             qtvr);
  811.  
  812. EXTERN_API_C( OSErr )
  813. QTVRSetTransitionProperty        (QTVRInstance             qtvr,
  814.                                  UInt32                 transitionType,
  815.                                  UInt32                 transitionProperty,
  816.                                  SInt32                 transitionValue);
  817.  
  818. EXTERN_API_C( OSErr )
  819. QTVREnableTransition            (QTVRInstance             qtvr,
  820.                                  UInt32                 transitionType,
  821.                                  Boolean                 enable);
  822.  
  823. /*
  824.   =================================================================================================
  825.     Basic Conversion and Math Routines 
  826.   -------------------------------------------------------------------------------------------------
  827. */
  828.  
  829. EXTERN_API_C( OSErr )
  830. QTVRSetAngularUnits                (QTVRInstance             qtvr,
  831.                                  QTVRAngularUnits         units);
  832.  
  833. EXTERN_API_C( QTVRAngularUnits )
  834. QTVRGetAngularUnits                (QTVRInstance             qtvr);
  835.  
  836. /* Pano specific routines*/
  837. EXTERN_API_C( OSErr )
  838. QTVRPtToAngles                    (QTVRInstance             qtvr,
  839.                                  Point                     pt,
  840.                                  float *                panAngle,
  841.                                  float *                tiltAngle);
  842.  
  843. EXTERN_API_C( OSErr )
  844. QTVRCoordToAngles                (QTVRInstance             qtvr,
  845.                                  QTVRFloatPoint *        coord,
  846.                                  float *                panAngle,
  847.                                  float *                tiltAngle);
  848.  
  849. EXTERN_API_C( OSErr )
  850. QTVRAnglesToCoord                (QTVRInstance             qtvr,
  851.                                  float                     panAngle,
  852.                                  float                     tiltAngle,
  853.                                  QTVRFloatPoint *        coord);
  854.  
  855. /* Object specific routines*/
  856. EXTERN_API_C( short )
  857. QTVRPanToColumn                    (QTVRInstance             qtvr,
  858.                                  float                     panAngle);
  859.  
  860. /* zero based    */
  861. EXTERN_API_C( float )
  862. QTVRColumnToPan                    (QTVRInstance             qtvr,
  863.                                  short                     column);
  864.  
  865. /* zero based    */
  866. EXTERN_API_C( short )
  867. QTVRTiltToRow                    (QTVRInstance             qtvr,
  868.                                  float                     tiltAngle);
  869.  
  870. /* zero based    */
  871. EXTERN_API_C( float )
  872. QTVRRowToTilt                    (QTVRInstance             qtvr,
  873.                                  short                     row);
  874.  
  875. /* zero based                */
  876. EXTERN_API_C( OSErr )
  877. QTVRWrapAndConstrain            (QTVRInstance             qtvr,
  878.                                  short                     kind,
  879.                                  float                     value,
  880.                                  float *                result);
  881.  
  882.  
  883. /*
  884.   =================================================================================================
  885.     Interaction Routines 
  886.   -------------------------------------------------------------------------------------------------
  887. */
  888.  
  889. EXTERN_API_C( OSErr )
  890. QTVRSetEnteringNodeProc            (QTVRInstance             qtvr,
  891.                                  QTVREnteringNodeUPP     enteringNodeProc,
  892.                                  SInt32                 refCon,
  893.                                  UInt32                 flags);
  894.  
  895. EXTERN_API_C( OSErr )
  896. QTVRSetLeavingNodeProc            (QTVRInstance             qtvr,
  897.                                  QTVRLeavingNodeUPP     leavingNodeProc,
  898.                                  SInt32                 refCon,
  899.                                  UInt32                 flags);
  900.  
  901. EXTERN_API_C( OSErr )
  902. QTVRSetInteractionProperty        (QTVRInstance             qtvr,
  903.                                  UInt32                 property,
  904.                                  void *                    value);
  905.  
  906. EXTERN_API_C( OSErr )
  907. QTVRGetInteractionProperty        (QTVRInstance             qtvr,
  908.                                  UInt32                 property,
  909.                                  void *                    value);
  910.  
  911. EXTERN_API_C( OSErr )
  912. QTVRReplaceCursor                (QTVRInstance             qtvr,
  913.                                  QTVRCursorRecord *        cursRecord);
  914.  
  915. /*
  916.   =================================================================================================
  917.     Viewing Limits and Constraints 
  918.   -------------------------------------------------------------------------------------------------
  919. */
  920.  
  921. EXTERN_API_C( OSErr )
  922. QTVRGetViewingLimits            (QTVRInstance             qtvr,
  923.                                  UInt16                 kind,
  924.                                  float *                minValue,
  925.                                  float *                maxValue);
  926.  
  927. EXTERN_API_C( UInt32 )
  928. QTVRGetConstraintStatus            (QTVRInstance             qtvr);
  929.  
  930. EXTERN_API_C( OSErr )
  931. QTVRGetConstraints                (QTVRInstance             qtvr,
  932.                                  UInt16                 kind,
  933.                                  float *                minValue,
  934.                                  float *                maxValue);
  935.  
  936. EXTERN_API_C( OSErr )
  937. QTVRSetConstraints                (QTVRInstance             qtvr,
  938.                                  UInt16                 kind,
  939.                                  float                     minValue,
  940.                                  float                     maxValue);
  941.  
  942.  
  943. /*
  944.   =================================================================================================
  945.     Back Buffer Memory Management 
  946.   -------------------------------------------------------------------------------------------------
  947. */
  948.  
  949. EXTERN_API_C( OSErr )
  950. QTVRGetAvailableResolutions        (QTVRInstance             qtvr,
  951.                                  UInt16 *                resolutionsMask);
  952.  
  953. EXTERN_API_C( OSErr )
  954. QTVRGetBackBufferMemInfo        (QTVRInstance             qtvr,
  955.                                  UInt32                 geometry,
  956.                                  UInt16                 resolution,
  957.                                  UInt32                 cachePixelFormat,
  958.                                  SInt32 *                minCacheBytes,
  959.                                  SInt32 *                suggestedCacheBytes,
  960.                                  SInt32 *                fullCacheBytes);
  961.  
  962. EXTERN_API_C( OSErr )
  963. QTVRGetBackBufferSettings        (QTVRInstance             qtvr,
  964.                                  UInt32 *                geometry,
  965.                                  UInt16 *                resolution,
  966.                                  UInt32 *                cachePixelFormat,
  967.                                  SInt16 *                cacheSize);
  968.  
  969. EXTERN_API_C( OSErr )
  970. QTVRSetBackBufferPrefs            (QTVRInstance             qtvr,
  971.                                  UInt32                 geometry,
  972.                                  UInt16                 resolution,
  973.                                  UInt32                 cachePixelFormat,
  974.                                  SInt16                 cacheSize);
  975.  
  976. /*
  977.   =================================================================================================
  978.     Buffer Access 
  979.   -------------------------------------------------------------------------------------------------
  980. */
  981.  
  982. EXTERN_API_C( OSErr )
  983. QTVRSetPrescreenImagingCompleteProc (QTVRInstance         qtvr,
  984.                                  QTVRImagingCompleteUPP  imagingCompleteProc,
  985.                                  SInt32                 refCon,
  986.                                  UInt32                 flags);
  987.  
  988. EXTERN_API_C( OSErr )
  989. QTVRSetBackBufferImagingProc    (QTVRInstance             qtvr,
  990.                                  QTVRBackBufferImagingUPP  backBufferImagingProc,
  991.                                  UInt16                 numAreas,
  992.                                  QTVRAreaOfInterest     areasOfInterest[],
  993.                                  SInt32                 refCon);
  994.  
  995. EXTERN_API_C( OSErr )
  996. QTVRRefreshBackBuffer            (QTVRInstance             qtvr,
  997.                                  UInt32                 flags);
  998.  
  999.  
  1000.  
  1001. /*
  1002.   =================================================================================================
  1003.     Old Names
  1004.   -------------------------------------------------------------------------------------------------
  1005. */
  1006. #if OLDROUTINENAMES
  1007. typedef QTVRCursorRecord                 CursorRecord;
  1008. typedef QTVRAreaOfInterest                 AreaOfInterest;
  1009. typedef QTVRFloatPoint                     FloatPoint;
  1010. typedef QTVRLeavingNodeProcPtr             LeavingNodeProcPtr;
  1011. typedef QTVRLeavingNodeUPP                 LeavingNodeUPP;
  1012. typedef QTVREnteringNodeProcPtr         EnteringNodeProcPtr;
  1013. typedef QTVREnteringNodeUPP             EnteringNodeUPP;
  1014. typedef QTVRMouseOverHotSpotProcPtr     MouseOverHotSpotProcPtr;
  1015. typedef QTVRMouseOverHotSpotUPP         MouseOverHotSpotUPP;
  1016. typedef QTVRImagingCompleteProcPtr         ImagingCompleteProcPtr;
  1017. typedef QTVRImagingCompleteUPP             ImagingCompleteUPP;
  1018. typedef QTVRBackBufferImagingProcPtr     BackBufferImagingProcPtr;
  1019. typedef QTVRBackBufferImagingUPP         BackBufferImagingUPP;
  1020. #endif  /* OLDROUTINENAMES */
  1021.  
  1022.  
  1023.  
  1024. #if PRAGMA_STRUCT_ALIGN
  1025.     #pragma options align=reset
  1026. #elif PRAGMA_STRUCT_PACKPUSH
  1027.     #pragma pack(pop)
  1028. #elif PRAGMA_STRUCT_PACK
  1029.     #pragma pack()
  1030. #endif
  1031.  
  1032. #ifdef PRAGMA_IMPORT_OFF
  1033. #pragma import off
  1034. #elif PRAGMA_IMPORT
  1035. #pragma import reset
  1036. #endif
  1037.  
  1038. #ifdef __cplusplus
  1039. }
  1040. #endif
  1041.  
  1042. #endif /* __QUICKTIMEVR__ */
  1043.  
  1044.